package Ventanas;

import java.awt.EventQueue;

import Paneles.subPanelListaTemasUsuarioNoRegistrado;
import Paneles.subPanelMensajes;
import Paneles.subPanelUsuarioSinRegistrar;
import java.awt.Dimension;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.net.MalformedURLException;
import java.rmi.Naming;
import java.rmi.NotBoundException;
import java.rmi.RemoteException;

import foroindaltronia.bd.IUsuario_SinRegistrar;
import foroindaltronia.bd.Tema;
import foroindaltronia.bd.Tema_no_terminal_visible;

public class VForoUsuarioNoRegistrado extends VForo{
	
	private subPanelUsuarioSinRegistrar subVUsuarioSinRegistrar;
	public static IUsuario_SinRegistrar interfazUsuarioNoRegistrado;

	public static void main(String[] args) {
		EventQueue.invokeLater(new Runnable() {
			public void run() {
				try {
					interfazUsuarioNoRegistrado = (IUsuario_SinRegistrar) Naming.lookup("rmi://localhost/usuariosinregistrar");
					VForoUsuarioNoRegistrado window = new VForoUsuarioNoRegistrado();
					window.setVisible(true);
				} catch (Exception e) {
					e.printStackTrace();
				}
			}
		});
	}

	/**
	 * Create the application.
	 */
	public VForoUsuarioNoRegistrado() {
		super();
		try {
			interfazUsuarioNoRegistrado = (IUsuario_SinRegistrar) Naming.lookup("rmi://localhost/usuariosinregistrar");
			subVUsuarioSinRegistrar = new subPanelUsuarioSinRegistrar(this);
			subVUsuarioSinRegistrar.setSize(new Dimension(220, 110));
			subVUsuarioSinRegistrar.setPreferredSize(new Dimension(220, 110));
			subVUsuarioSinRegistrar.setBounds(587, 11, 220, 110);
			getContentPane().add(subVUsuarioSinRegistrar);
			
			panelListaTemas = new subPanelListaTemasUsuarioNoRegistrado();
			scrollPanelListaTemas.setViewportView(panelListaTemas);
			
			/**botonVolverListaTemas.addActionListener(new ActionListener() {
				public void actionPerformed(ActionEvent arg0) {
					try {
						if(temaActual != null)
						{
							System.out.println("SOCIO ESTO VA!");
							temaActual = ((Tema_no_terminal_visible)temaActual).getTema_no_terminal_visible_padre();
							((subPanelListaTemasUsuarioNoRegistrado)panelListaTemas).actualizarListaTemas(VForoUsuarioNoRegistrado.interfazUsuarioNoRegistrado.verTemas(temaActual));
							int index = lblvariable.getText().lastIndexOf(" > ");
							if(index != -1)
									{
										String nuevaCadena = new String(lblvariable.getText().toCharArray(),0,index);
										lblvariable.setText(nuevaCadena);
									}
							else
								lblvariable.setText("Principal");
						}
					} catch (RemoteException e) {
						// TODO Auto-generated catch block
						e.printStackTrace();
					}
				}
			});**/
			botonVolverListaTemas.addActionListener(new ActionListener() {
				public void actionPerformed(ActionEvent arg0) {
					try {
						if(temaActual != null)
						{	
							if(muestraMensajes){
								System.out.println("DEBERIA HACERLO");
								actualizarListaTemaTerminal(interfazUsuarioNoRegistrado.verTemasUsuarioNoRegistrado(temaActual));
								muestraMensajes=false;
							}
							else
							{
								System.out.println("NO MUESTRA MENSAJES!!!");
							temaActual = ((Tema_no_terminal_visible)temaActual).getTema_no_terminal_visible_padre();
							Tema[] listaTemas = interfazUsuarioNoRegistrado.verTemasUsuarioNoRegistrado(temaActual);
							actualizarListaTemaTerminal(null);
							if(listaTemas.length != 0)
									((subPanelListaTemasUsuarioNoRegistrado)panelListaTemas).actualizarListaTemas(listaTemas);
							int index = lblvariable.getText().lastIndexOf(" > ");
							if(index != -1)
									{
										String nuevaCadena = new String(lblvariable.getText().toCharArray(),0,index);
										lblvariable.setText(nuevaCadena);
									}
							else
								lblvariable.setText("Principal");
							}
						}
						else if(temaActual == null && muestraTemas)
							System.out.println("OH SI0");
					} catch (RemoteException e) {
						// TODO Auto-generated catch block
						e.printStackTrace();
					}
				}
			});
			scrollPanelListaTemas.setColumnHeaderView(botonVolverListaTemas);
			
			
			((subPanelListaTemasUsuarioNoRegistrado)panelListaTemas).actualizarListaTemas(interfazUsuarioNoRegistrado.verTemasUsuarioNoRegistrado(temaActual));
			actualizarListaTemas();
			
		} catch (MalformedURLException e1) {
			// TODO Auto-generated catch block
			e1.printStackTrace();
		} catch (RemoteException e1) {
			// TODO Auto-generated catch block
			e1.printStackTrace();
		} catch (NotBoundException e1) {
			// TODO Auto-generated catch block
			e1.printStackTrace();
		}
	}
	
	public void actualizarListaTemas()
	{
		try {
			((subPanelListaTemasUsuarioNoRegistrado)panelListaTemas).actualizarListaTemas(interfazUsuarioNoRegistrado.verTemasUsuarioNoRegistrado(temaActual));
		} catch (RemoteException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
	
	public static void actualizarListaMensajes(String nombrePadre)
	{
		subPanelMensajes panelMensajes;
		try {
			panelMensajes = new subPanelMensajes(interfazUsuarioNoRegistrado.buscarMensajesDeTemaTerminal(nombrePadre),null);
			panelPrincipal.setColumnHeader(null);
			panelPrincipal.setViewportView(panelMensajes);
			lblvariable.setText(lblvariable.getText()+" > "+nombrePadre);
		} catch (RemoteException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}

}
